﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

namespace WebArchivosTelefonica.Jerarquias
{
    /// <summary>
    /// Clase que contiene la información de un estado de un proyecto
    /// </summary>
    public class InfoEstadosProyecto
    {
        #region CAMPOS
        
        /// <summary>
        /// Id del proyecto
        /// </summary>
        private readonly string _idProyecto;
        /// <summary>
        /// Id del estado de aprobacion
        /// </summary>
        /// <summary>
        /// Id del estado
        /// </summary>
        private readonly string _idEstado;
        /// <summary>
        /// Nombre del estado
        /// </summary>
        private readonly string _nombreEstado;
        /// <summary>
        /// Consecutivo
        /// </summary>
        private int _consecutivo;
        /// <summary>
        /// Administrador
        /// </summary>
        private IAdministrador _admin;
        
        #endregion

        #region CONSTRUCTOR
       /// <summary>
        /// Constructor de la clase por parametros
        /// </summary>
        /// <param name="idProyecto">Id del proyecto</param>
        /// <param name="idEstado">Id del estado</param>
        /// <param name="nombreEstado">Nombre del estado</param>
        /// <param name="consecutivo">Consecutivo</param>
        /// <param name="admin">Administrador</param>
        public InfoEstadosProyecto(string idProyecto, string idEstado, string nombreEstado, int consecutivo, IAdministrador admin)
        {
            _idProyecto = idProyecto;
            _idEstado = idEstado;
            _nombreEstado = nombreEstado;
            _consecutivo = consecutivo;
            _admin = admin;
        }
        #endregion

        #region PROPIEDADES

        /// <summary>
        /// Propiedad para ver el boton de subir de orden
        /// </summary>
        public bool VerBotonUp
        {
            get
            {
                if (_consecutivo <= 0)
                {
                    return false;
                }
                else
                {
                    return true;
                }
            }
        }
        /// <summary>
        /// Propiedad para ver el boton de bajar de orden
        /// </summary>
        public bool VerBotonDown
        {
            get
            {
                return _admin.VisivilidadBotonDownEstado(_idProyecto, _idEstado);
            }
        }

        /// <summary>
        /// Id del proyecto
        /// </summary>
        public string IdProyecto
        {
            get
            {
                return _idProyecto;
            }
        }
        /// <summary>
        /// Id del estado
        /// </summary>
        public string IdEstado
        {
            get
            {
                return _idEstado;
            }
        }
        /// <summary>
        /// Nombre del estado
        /// </summary>
        public string NombreEstado
        {
            get
            {
                return _nombreEstado;
            }
        }
        /// <summary>
        /// Consecutivo
        /// </summary>
        public int Consecutivo
        {
            get
            {
                return _consecutivo;
            }
            set
            {
                _consecutivo = value;
            }
        }

        #endregion
    }
}
